home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Floppyshop 2
/
Floppyshop - 2.zip
/
Floppyshop - 2.iso
/
art&graf.ix
/
art-6007
/
xcopy
/
xcopy.doc
< prev
next >
Wrap
Text File
|
1995-06-26
|
11KB
|
262 lines
p-------------------------------------------q
p|q xCOPY pOV v0.9 p|q
p|q Programmé en GFA BASIC 3.5E p|q
p|q par GRANGER Fabrice p|q
p|q 23/06/95 p|q
p-------------------------------------------q
p-Sommaire----------------q
p|q 1) Présentation p|q
p|q 2) L'interface p|q
p|q 3) Un exemple p|q
p-------------------------q
p 1) Présentation q
xCOPY pOV est un utilitaire facilitant les copies d'objets pour
Persistence Of Vision 2. Prenons un petit exemple pour bien comprendre :
vous voulez réaliser une roue de fête foraine ( un exemple comme un autre ),
sous votre éditeur de texte préféré, vous avez laborieusement créer
la structure des 'rayons' ainsi que celle des cabines... Oui mais voilà,
tout serait parfait s'il n'y avait pas à calculer et à écrire chaque
rotation des rayons autour de l'axe ; d'autant plus que les cabines ne
tournent pas sur elles-mêmes et donc la rotation orbitale ne nous aide
plus du tout...
C'est à ce moment qu'intervient xCOPY pOV !!!
p 2) L'interface q
Je tiens tout d'abord à remercier Claude ATTARD pour l'initiation
au GEM et surtout la routine xform_do.
Les menus déroulants
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
p xCOPY pOV q
Bon, on va pas en parler pendant 107 ans, c'est la
même chose dans tous les programmes (GEM !).
p sCRIPT q
|
|- p Paramêtres q
| C'est le formulaire principal, c'est là
| qu'on va donner à xCOPY toutes les caractéristiques
| de la copie : nom, translation, rotation, échelle,
| nombre de copie plus quelques détails...
|
|- p Visualisation q
| Cà c'est un truc interessant : on va pouvoir
| regarder ce que donne notre copie d'objet en 3D.
|
|- p Voir script q
| Cette option permet de voir la 'gueule' du fichier
| INCLUDE généré par xCOPY.
|
|- p Quitter q
Cette option est très complexe... elle fait
apparaître une mystérieuse boîte d'alerte
nous demandant si l'on veut quitter xCOPY (?!?)
p oPTIONS q
|
|- p Axes q
| Bon c'est pas dur, soit vous voulez afficher les axes
| dans la fenêtre Visualisation, soit vous voulez pas.
| Le schmoll devant 'Axes' signifie que vous voulez
| voir les axes ; il était important de le préciser.
|
|- p ------- q
| Ce ne sont pas des options... De toute façon vous ne pouvez
| même pas les sélectionner.
|
|- p Caméra 1 q
| Dans une visualisation 3D qui se respecte on peut
| déplacer la caméra. Cette option permet de choisir
| la caméra 1 comme point de vue, la fenêtre visualisation
| sera redessinée.
|
|- p Caméra 2 q
| Dans une visualisation 3D qui se respecte on peut
| déplacer la caméra. Cette option permet de choisir
| la caméra 2 comme point de vue, la fenêtre visualisation
| sera redessinée.
|
|- p Caméra 3 q
| Bon, je pense que vous avez compris : on reprend le paragraphe
| précédent et on remplace 2 par 3. J'espère que votre éditeur
| de texte est équipé d'un COPIER-COLLER-REMPLACER performant
| parce que...
|
|- p Caméra 4 q
| Lancer la copie ici !!!
|
|- p Param. caméra q
Si on clique de dessus, un superbe formulaire en fenêtre
( merci xform_do !!! ) nous permet de configurer chaque
caméra ( 1, 2, 3 ou 4 ).
p cONFIGURATION q
|
|- p Affichage q
| C'est une option que j'ai rajouté juste pour le genre
| elle permet de choisir les couleurs et les trames des
| fenêtre script et visualisation.
|
|- p Chemin d'accès q
| Cette option permet de redéfinir le chemin d'accès au
| fichier ressource, ainsi qu'au répertoire des includes
| de POV2.
|
|- p Sauver config. q
Bah ça alors !!! On peut sauver la configuration !!!
n'oublier pas la formule :
CONFIGURATION = CAMERA 1,2,3,4 + AFFICHAGE + CHEMIN.
Les formulaires
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
p PARAMETRES q
p Nom de l'objet q
il faut taper le nom exact ( MAJ/MIN ) de l'objet que vous
avez déclaré dans votre script et dont vous voulez faire
la copie.
p Nombre q
À l'aide de + et de - ( sur l'écran ! ) sélectionner le nombre
de fois que l'objet sera copié ( entre 1 et 99 ).
p Translation q
Toujours à l'aide de + et - ( pas les mêmes, mais ils sont toujours
sur l'écran ! ) sélectionner les valeurs de translation en
x, y et z. ATTENTION : les valeurs sont ajoutées à chaque itération.
p Rotation et échelle q
C'est la même chose que pour la translation ( attention
à la position des + et des - ).
p Coordonnées initiales q
Si vous sélectionnez cette option et que vous 'APPLIQUER', les
valeurs choisies correspondront aux caractéristiques de votre
objet initial.
p Rotation de l'objet q
Cette option, lorsqu'elle est désélectionnée, va nous permettre
de créer toutes les cabines qui composent notre roue de fête
foraine, sinon xCOPY laissera l'objet tourné avec les aléas
de la rotation orbitale.
p Appliquer q
On recalcule la vue 3D et le script et on lance un 'redraw'.
p Paramétrage caméra q
p Distance q
Mince ! encore ces foutus boutons + et -. Bon, ici on va
paramêtrer la distance de l'oeil pour la fenêtre visualisation.
Ça ne change rien dans le script généré.
p Focale q
Malgré l'étrange fonctionnement des boutons + et -, on va
pouvoir configurer la focale de la caméra. Plus la valeur
diminue plus le champ de vision est grand et inversement ;
attention aux déformations !
p Orientation du regard q
Ici, on choisit les valeurs de RX, RY et RZ qui corespondent
à la rotation de la caméra. voici un petit script POV qui va
vous éclairer pour l'utilisation de la caméra :
camera {
direction <0,0,FOCALE/500> // c'est une approximation
location <0,0,-DISTANCE>
look_at <0,0,0>
rotation <RX,RY,RZ>
}
Si ça ne vous aide pas du tout sachez que si RX=90 RY=0 RZ=0
alors la fenêtre visualisation nous montre une vue de HAUT ; si
RX=0 RY=90 RZ=0 une vue de profil, si RX=0 RY=0 RZ=0 alors on
voit l'objet de face.
p Appliquer q
on recalcule la vue 3D avec la nouvelle caméra et on balance
tout dans la fenêtre visualisation ( redraw ! ).
p Affichage q
Juste un petit détail, le tramage n'est appliquer qu'à la
fenêtre script.
p Chemin d'accès q
Pour paramêtrer un chemin il faut cliquer sur le chemin, le
sélecteur de fichier apparaît alors.
N'oublier pas d'APPLIQUER sinon rien ne se passera.
p 3) Le petit exemple q
Reprenons l'exemple de la fête foraine. Vous venez, donc, de créer
les rayons de la roue : ils ont une hauteur de 2, une largeur de 0.1, et
une profondeur de 0.4. Sous xCOPY, paramêtrez ces valeurs dans la boîte
échelle ; il ne faut pas oublier que par défaut xCOPY centre l'objet
autour du point <0,0,0>, il faut donc translater l'objet en y de la moitié
de sa hauteur (pour notre exemple). Sélectionnez 'coordonnées initiales'
puis 'appliquer'. Allez faire un tour du coté de la fenêtre visualisation
pour voir si l'objet est bien configuré.
Maintenant, il va falloir paramêtrer la rotation. Définissez le nombre
de rayons de la roue ( par exemple : 9 ), puis déterminez la rotation
autour de l'axe z en fonction de ce nombre ( dans notre exemple : 36° ).
Sélectionner 'Rotation de l'objet' et 'appliquer'. Si la fenêtre
visualisation est ouverte alors vous devriez voir tous vos rayons.
Sauvez le script obtenu précédemment et passons maintenant aux cabines.
Les caractéristiques de la cabine sont : 0.2 en hauteur, 0.2 en largeur, 0.3
en profondeur. Rentrez ces valeurs sous xCOPY et puisque nous voulons
que nos cabines soient 'accrochées' au bout des rayons il faut paramêtrer
la translation en y, dans notre cas choisissez 2. 'Coordonnées initiales'
puis 'appliquer' et rentrons maintenant les mêmes paramêtres de rotation
que les rayons mais en ne sélectionnant pas 'rotation de l'objet'. Les
cabines devraient tourner autour de l'axe z mais en restant bien droite.
Sauvez le script obtenu et quitter xCOPY.
Votre script POV doit avoir cette forme là :
#include "colors.inc"
#include "etc.inc" // tous vos includes courant
#declare Rayon = // la définition d'un rayon
union {
...
...
}
#include "rayons.inc" // le fichier xCOPY pour les rayons
#declare Cabine = // La définition d'une cabine
union {
...
...
}
#include "cabines.inc" // le fichier xCOPY pour les cabines
// Pour les placer dans l'univers :
union {
object { xCOPY_Rayon texture {...} }
object { xCOPY_Cabine texture {...} }
}
p L'enregistrement q
Si vous utilisez souvent xCOPY, merci de bien vouloir vous
enregistrer en :
- envoyant 20 Frs
- ou en envoyant une MEGADÉMO, que je n'ai pas, pour Falcon
( demandez-moi la liste en BAL FAG sur le 3615 STMAG )
dans une enveloppe matellassée
à l'adresse :
GRANGER Fabrice
24 rue des grandes terres
78700 Conflans sainte Honorine.
FRANCE
N'oublier pas de m'indiquer votre nom, votre adresse, votre BAL et
tout autre chose qui pourrait m'interresser.